Android自定义密码输入框(可显示或隐藏) | 您所在的位置:网站首页 › android studio输入框控件 › Android自定义密码输入框(可显示或隐藏) |
先上效果图 1.首先在layout下新建xml文件 view_pas_edittext 主要控件为EditText和Button,其中Button存放闭眼的图片,其他样式自定(闭眼和眼睛两张图片可在阿里图标下载) 2.新建CustomizePasEditText继承LinearLayout,实现View.onClickListener接口 public class CustomizePasEditText extends LinearLayout implements View.OnClickListener { private EditText editText; private Button showButton; //true为隐藏,false为显示 private boolean mode = true; //设置提示文字 public void setEditTextHint(String hint){ if(editText!=null){ editText.setHint(hint); } } //获得输入框文字 public String getText(){ return editText.getText().toString(); } public CustomizePasEditText(Context context, AttributeSet attrs) { super(context, attrs); LayoutInflater.from(context).inflate(R.layout.view_edittext,this,true); editText = findViewById(R.id.et_view); //一开始密码是隐藏的,因此一开始使用闭眼图片,并且将EditText的输入类型设置为密码(不可见) showButton= findViewById(R.id.bt_show); showButton.setBackgroundResource(R.drawable.hide_pas); editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); showButton.setOnClickListener(this); } @Override public void onClick(View v) { //当点击了显示/隐藏按钮,则改变editText的文字显示方式 switch (v.getId()){ case R.id.bt_show: //从隐藏变显示 if(mode){ editText.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); //为了点击之后输入框光标不变 editText.setSelection(editText.getText().length()); showButton.setBackgroundResource(R.drawable.show_pas); mode = !mode; }else { editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); //为了点击之后输入框光标不变 editText.setSelection(editText.getText().length()); showButton.setBackgroundResource(R.drawable.hide_pas); mode = !mode; } break; } } //获得输入框内容 public EditText getEditText(){ return editText; } }3.在activity中使用 首先在activity的xml中调用该控件 然后在代码中使用 //注册绑定 CustomizePasEditText pasEditText; pasEditText = findViewById(R.id.ed_pas); pasEditText.setEditTextHint(getResources().getString(R.string.ed_hint_pas)); //获得输入内容 String pas = pasEditText.getText();注意,如果要动态改变输入框样式,需在CustomizePasEditText中编写 |
CopyRight 2018-2019 实验室设备网 版权所有 |